package ru.niir.goodfil.ui;

import ru.niir.goodfil.db.Order;
import ru.niir.goodfil.db.handlers.Goodfil;

import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Calendar;

/**
 * Утилиты
 *
 * @author
 */
public class Utils {

    /**
     * Наименование настройкаи "Срок резервирования товара в днях"
     */
    private static final String ORDERS_RESERVATION_TIMEOUT = "orders.reservation.timeout";

    /**
     * @param s
     * @return
     */
    public static boolean empty(String s) {
        return (s == null || s.equals(""));
    }

    /**
     * @param L1
     * @param L2
     * @param l1
     * @param l2
     * @return
     */
    public static boolean intersecs(long L1, long L2, long l1, long l2) {

        /*
            L1: 1253736000000
            L2: 1253995200000

            l1: 1253649600000
            l2: 1253908800000
         */

        return ((l1 >= L1 && l2 <= L2) ||
                (l1 <= L1 && l2 >= L2) ||
                (l1 >= L1 && l1 <= L2 && l2 >= L2) ||
                (l1 <= L1 && l2 >= L1 && l2 <= L2));

    }

    /**
     * Установка срока резервирования для заказа
     */
    public static void setReservationDate(Order order, Goodfil gf) {
        if (order == null) return;
        if (gf == null) return;

        try {
            int reservationTimeout = gf.getInt(ORDERS_RESERVATION_TIMEOUT);
            Calendar c = Calendar.getInstance();
            c.set(Calendar.HOUR_OF_DAY, 0);
            c.set(Calendar.MINUTE, 0);
            c.set(Calendar.SECOND, 0);
            c.set(Calendar.MILLISECOND, 0);
            c.add(Calendar.DATE, reservationTimeout);
            order.setReservationDate(new Timestamp(c.getTimeInMillis()));
        } catch (Exception e) {

        }
    }

    /**
     * Вернуть текущую дату в виде строки формата dd.MM.yyyy
     */
    public static String getTodayDateAsString() {
        Calendar now = Calendar.getInstance();
        return new SimpleDateFormat("dd.MM.yyyy").format(now.getTime());
    }


}